home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1984-12-29 | 20.6 KB | 620 lines
10 REM THIS PROGRAM SETS UP A MATRIX TO ENTER YOUR DATA WHICH CAN THEN BE MANIPULATED FROM A MENU AS TO MATHEMATICAL TREATMENT 19 '*************************************************************************** 20 '* BY Gregory S.Bleasdale AND James L. Bleasdale 9/25/1982 * 21 '* 1700 BRUNSWICK RD * 22 '* WAYNESBORO,VIRGINIA * 23 '* 22980 * 30 '*************************************************************************** 40 CLS:KEY OFF 50 DEFINT R,C,N,J,K 60 DEFDBL P,S,Z,V,I 70 OPTION BASE 1 80 DIM K$[20],A$[6],B$[6],C$[6],D$[6],E$[6],F$[6] 90 DIM G(30,4) 100 CLS: PRINT TAB(30);"MENU" 110 PRINT 120 PRINT"ENTER NEW DATA-----------------------------ENTER 'FT'" 130 PRINT"CORRECT A CURRENT VALUE--------------------ENTER 'C'" 140 PRINT"PRINTOUT EXISTING TABLE--------------------ENTER 'H'" 150 PRINT 160 PRINT"STORE EXISTING TABLE ON DISK---------------ENTER 'SD'" 170 PRINT"RETRIEVE DATA FROM DISK--------------------ENTER 'RD'" 180 PRINT"PERFORM LINEAR REGRESSION------------------ENTER 'LR'" 190 PRINT 200 PRINT"FIX THE DECIMAL PLACES---------------------ENTER 'FD'" 210 PRINT"RUN MULTIPLE REGRESSION--------------------ENTER 'MR'" 220 PRINT"RUN STATISTICS ON PAIRED DATA--------------ENTER 'PD'" 230 PRINT 240 PRINT"PRINT OUT A COPY OF STUDENTS-t TABLE-------ENTER 'T'" 250 PRINT"VIEW DATA ON CRT---------------------------ENTER 'V'" 260 P$="":LOOP=0 270 LETTER$=INKEY$: IF LETTER$="" THEN 270 280 LOOP=LOOP+1 290 IF LETTER$="C" OR LETTER$="c" OR LETTER$="V" OR LETTER$="v" OR LETTER$="H" OR LETTER$="h" OR LETTER$="T" OR LETTER$="t" THEN P$=P$ +LETTER$ : GOTO 310 300 P$=P$+LETTER$:IF LOOP =1 THEN 270 310 IF P$="FT" OR P$="ft" THEN 440 320 IF P$="V" OR P$="v" THEN 750 330 IF P$ ="C" OR P$="c" THEN 1410 340 IF P$="FD" OR P$="fd" THEN 4510 350 IF P$ = "H" OR P$ = "h" THEN 1500 360 IF P$="SD" OR P$="sd" THEN 2030 370 IF P$="RD" OR P$="rd" THEN 2450 380 IF P$="LR" OR P$="lr" THEN 2880 390 IF P$="MR" OR P$="mr" THEN 4610 400 IF P$="PD" OR P$="pd" THEN 3790 410 IF P$="T" OR P$="t" THEN 3530 420 PRINT"INVALID COMMAND. PRESS ANY KEY TO CONTINUE" 430 P$=INKEY$: IF P$="" THEN 430 ELSE 100 440 REM*************DATA SETUP AND ENTRY FOR SIX COLUMNS***************** 450 CLS 460 PRINT"THE MAXIMUM NUMBER OF COLUMNS THIS PROGRAM CAN HANDLE IS SIX. THE NUMBER OF ROWS IS LIMITED ONLY BY MEMORY AVAILABLE" 470 INPUT"TITLE OF TABLE ";K$ 480 INPUT"HOW MANY COLUMNS WILL BE USED";C 490 INPUT"HOW MANY ROWS WILL BE USED";R 500 DIM M(R,C) 510 INPUT"THE TITLE OF THE FIRST COLUMN IS";A$ 520 I=I+1 530 IF I=C THEN 670 540 INPUT"THE TITLE OF THE SECOND COLUMN IS";B$ 550 I=I+1 560 IF I=C THEN GOTO 670 570 INPUT"THE TITLE OF THE THIRD COLUMN IS";C$ 580 I=I+1 590 IF I=C THEN 670 600 INPUT"THE TITLE OF THE FOURTH COLUMN IS";D$ 610 I=I+1 620 IF I=C THEN 670 630 INPUT"THE TITLE OF THE FIFTH COLUMN IS";E$ 640 I=I+1 650 IF I=C THEN 670 660 INPUT"THE TITLE OF THE SIXTH COLUMN IS";F$ 670 REM****THIS ROUTINE IS FOR ONE TO SIX COLUMN ENTRY********* 680 Y$="" 690 FOR J= 1 TO R 700 FOR K=1 TO C 710 PRINT"ENTER A VALUE FOR ROW ";J;" AND COLUMN ";K 720 INPUT M(J,K) 730 NEXT K 740 NEXT J 750 ON C GOTO 760,860,960,1070,1180,1290 760 CLS 770 PRINT TAB(6);K$ 780 PRINT 790 PRINT TAB(5);A$ 800 FOR J=1 TO R 810 PRINT TAB(6);M(J,1) 820 IF J MOD(20)=0 THEN PRINT"CHECK DATA ACCURACY, THEN TYPE 'CONT' TO CONTINUE" :STOP 830 NEXT J 840 INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO CHANGE ANY VALUE ENTER A 'Y'";Y$ 850 IF Y$="Y" OR Y$="y" THEN GOTO 1410 ELSE 100 860 REM****ROUTINE FOR TWO COLUMNS***** 870 CLS:Y$="" 880 PRINT TAB(20);K$ 890 PRINT TAB(5);A$;TAB(25);B$ 900 FOR J=1 TO R 910 PRINT M(J,1);TAB(25);M(J,2) 920 IF J MOD(20)=0 THEN PRINT"CHECK DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP 930 NEXT J 940 INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO MAKE A CHANGE THEN ENTER A 'Y'";Y$ 950 IF Y$="Y" OR Y$="y" THEN GOTO 1410 ELSE 100 960 CLS:Y$="" 970 REM*******ROUTINE TO DISPLAY 3 COLUMNS**** 980 PRINT TAB(24);K$ 990 PRINT 1000 PRINT TAB(5);A$;TAB(25);B$;TAB(45);C$ 1010 FOR J=1 TO R 1020 PRINT TAB(5);M(J,1);TAB(25);M(J,2);TAB(45);M(J,3) 1030 IF J MOD(20)=0 THEN PRINT"CHECK THE DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP 1040 NEXT J 1050 INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO CHANGE AN ITEM THEN ENTER A 'Y'";Y$ 1060 IF Y$="Y" OR Y$="y" THEN 1410 ELSE 100 1070 REM*****ROUTINE FOR FOUR COLUMN DISPLAY***** 1080 CLS:Y$="" 1090 PRINT TAB(35);K$ 1100 PRINT 1110 PRINT TAB(3);A$;TAB(20);B$;TAB(40);C$;TAB(60);D$ 1120 FOR J=1 TO R 1130 PRINT TAB(2);M(J,1);TAB(20);M(J,2);TAB(40);M(J,3);TAB(60);M(J,4) 1140 IF J MOD 20 =0 THEN PRINT"CHECK THE DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP 1150 NEXT J 1160 INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO MAKE A CHANGE THEN ENTER A 'Y'";Y$ 1170 IF Y$="Y" OR Y$="y" THEN 1410 ELSE 100 1180 REM******ROUTINE TO DISPLAY FIVE COLUMNS OF DATA***** 1190 CLS:Y$="" 1200 PRINT TAB(40);K$ 1210 PRINT 1220 PRINT TAB(2);A$;TAB(20);B$;TAB(35);C$;TAB(50);D$;TAB(65);E$ 1230 FOR J=1 TO R 1240 PRINT TAB(2);M(J,1);TAB(20);M(J,2);TAB(35);M(J,3);TAB(50);M(J,4);TAB(65);M(J,5) 1250 IF J MOD 20=0 THEN PRINT"CHECK THE DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP 1260 NEXT J 1270 INPUT"IF THE DATA ARE NOT CORRECT AND YOU WANT TO MAKE A CORRECTION THEN ENTER A 'Y'";Y$ 1280 IF Y$="Y" OR Y$="y" THEN GOTO 1410 ELSE 100 1290 CLS:Y$="" 1300 PRINT TAB(40);K$ 1310 PRINT 1320 PRINT TAB(2);A$;TAB(15);B$;TAB(28);C$;TAB(41);D$;TAB(54);E$;TAB(67);F$ 1330 PRINT 1340 FOR J=1 TO R 1350 PRINT M(J,1);TAB(13);M(J,2);TAB(26);M(J,3);TAB(39);M(J,4);TAB(52);M(J,5);TAB(65);M(J,6) 1360 IF J MOD(20)=0 THEN PRINT"CHECK THE DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP 1370 NEXT J 1380 PRINT 1390 INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO MAKE A CHANGE ENTER 'Y'";Y$ 1400 IF Y$="Y" OR Y$="y" THEN FGOTO 7800 ELSE 100 1410 REM*****************CHANGE A WRONG ENTRY VALUE*********************** 1420 CLS :Y$="" 1430 PRINT"THIS ROUTINE WILL ALLOW YOU TO CORRECT A WRONG VALUE IN YOUR TABLE OF DATA" 1440 INPUT"WHAT COLUMN NUMBER IS THE ITEM IN";C1 1450 INPUT"WHAT ROW NUMBER IS THE ITEM TO BE CHANGED";R1 1460 INPUT"WHAT IS THE NEW VALUE";V1 1470 M(R1,C1)=V1 1480 INPUT"IF YOU WISH TO CHANGE ANOTHER VALUE ENTER 'Y'";Y$ 1490 IF Y$="Y" OR Y$="y" THEN 1410 ELSE 100 1500 REM********ROUTINE TO PRINT HARD COPY FOR ONE COLUMN****** 1510 PRINT"TURN ON PRINTER AND PAPER,THEN PRESS ANY KEY" 1520 R$=INKEY$:IF R$="" THEN 1520 1530 INPUT"ENTER THE NUMBER OF ROWS AND COLUMNS IN THE DATA";R,C 1540 ON C GOTO 1550,1630,1710,1790,1870,1950 1550 REM*****PRINT ROUTINE FOR ONE COLUMN***** 1560 LPRINT TAB(10);K$ 1570 LPRINT 1580 LPRINT TAB(8);A$ 1590 FOR J=1 TO R 1600 LPRINT TAB(8);M(J,1) 1610 NEXT J 1620 GOTO 100 1630 REM*****ROUTINE TO PRINT TWO COLUMNS**** 1640 LPRINT TAB(15);K$ 1650 LPRINT 1660 LPRINT TAB(5);A$;TAB(25);B$ 1670 FOR J=1 TO R 1680 LPRINT TAB(5);M(J,1);TAB(25);M(J,2) 1690 NEXT J 1700 GOTO 100 1710 REM*****PRINT ROUTINE FOR THREE COLUMNS****** 1720 LPRINT TAB(20);K$ 1730 LPRINT 1740 LPRINT TAB(5);A$;TAB(20);B$;TAB(35);C$ 1750 FOR J=1 TO R 1760 LPRINT TAB(5);M(J,1);TAB(20);M(J,2);TAB(35);M(J,3) 1770 NEXT J 1780 GOTO 100 1790 REM*****PRINT ROUTINE FOR FOUR COLUMNS****** 1800 LPRINT TAB(25);K$ 1810 LPRINT 1820 LPRINT TAB(10);A$;TAB(25);B$;TAB(40);C$;TAB(55);D$ 1830 FOR J=1 TO R 1840 LPRINT TAB(10);M(J,1);TAB(25);M(J,2);TAB(40);M(J,3);TAB(55);M(J,4) 1850 NEXT J 1860 GOTO 100 1870 REM*****PRINT ROUTINE FOR FIVE COLUMNS******* 1880 LPRINT TAB(30);K$ 1890 LPRINT 1900 LPRINT TAB(5);A$;TAB(20);B$;TAB(35);C$;TAB(50);D$;TAB(65);E$ 1910 FOR J=1 TO R 1920 LPRINT TAB(5);M(J,1);TAB(20);M(J,2);TAB(35);M(J,3);TAB(50);M(J,4);TAB(65);M(J,5) 1930 NEXT J 1940 GOTO 100 1950 REM*****PRINT ROUTINE FOR SIX COLUMNS***** 1960 LPRINT TAB(40);K$ 1970 LPRINT 1980 LPRINT TAB(5);A$;TAB(17);B$;TAB(29);C$;TAB(41);D$;TAB(53);E$;TAB(65);F$ 1990 FOR J=1 TO R 2000 LPRINT TAB(5);M(J,1);TAB(17);M(J,2);TAB(29);M(J,3);TAB(41);M(J,4);TAB(53);M(J,5);TAB(65);M(J,6) 2010 NEXT J 2020 GOTO 100 2030 REM******ROUTINE TO STORE DATA ONTO DISK********* 2040 INPUT"HOW MANY ROWS AND COLUMNS ARE TO BE STORED";R,C 2050 INPUT"WHAT NAME DO YOU WANT TO USE FOR FILING";N$ 2060 OPEN "O",#1,N$ 2070 WRITE #1,K$ 2080 ON C GOTO 2090,2150,2210,2270,2330,2390 2090 WRITE #1,A$ 2100 FOR J=1 TO R 2110 WRITE #1,M(J,1) 2120 NEXT J 2130 CLOSE #1 2140 GOTO 100 2150 WRITE #1,A$,B$ 2160 FOR J=1 TO R 2170 WRITE #1,M(J,1),M(J,2) 2180 NEXT J 2190 CLOSE #1 2200 GOTO 100 2210 WRITE #1,A$,B$,C$ 2220 FOR J=1 TO R 2230 WRITE #1,M(J,1),M(J,2),M(J,3) 2240 NEXT J 2250 CLOSE #1 2260 GOTO 100 2270 WRITE #1,A$,B$,C$,D$ 2280 FOR J=1 TO R 2290 WRITE #1,M(J,1),M(J,2),M(J,3),M(J,4) 2300 NEXT J 2310 CLOSE #1 2320 GOTO 100 2330 WRITE #1,A$,B$,C$,D$,E$ 2340 FOR J=1 TO R 2350 WRITE #1,M(J,1),M(J,2),M(J,3),M(J,4),M(J,5) 2360 NEXT J 2370 CLOSE #1 2380 GOTO 100 2390 WRITE #1,A$,B$,C$,D$,E$,F$ 2400 FOR J=1 TO R 2410 WRITE #1,M(J,1),M(J,2),M(J,3),M(J,4),M(J,5),M(J,6) 2420 NEXT J 2430 CLOSE #1 2440 GOTO 100 2450 REM******ROUTINE TO READ DATA FROM DISK FILE********** 2455 CLS:PRINT"PUT DISK WITH TABLE OF DATA IN DRIVE A" 2460 INPUT"HOW MANY ROWS AND COLUMNS WERE USED IN THE FILE";R,C 2470 DIM M(R,C) 2480 INPUT"WHAT NAME WAS USED FOR THE FILE";N$ 2490 OPEN "I",#1,N$ 2500 INPUT #1,K$ 2510 ON C GOTO 2520,2580,2640,2700,2760,2820 2520 INPUT #1,A$ 2530 FOR J=1 TO R 2540 INPUT #1,M(J,1) 2550 NEXT J 2560 IF EOF(1) THEN CLOSE #1 2570 GOTO 100 2580 INPUT #1,A$,B$ 2590 FOR J=1 TO R 2600 INPUT #1,M(J,1),M(J,2) 2610 NEXT J 2620 IF EOF(1) THEN CLOSE #1 2630 GOTO 100 2640 INPUT #1,A$,B$,C$ 2650 FOR J=1 TO R 2660 INPUT #1,M(J,1),M(J,2),M(J,3) 2670 NEXT J 2680 IF EOF(1) THEN CLOSE #1 2690 GOTO 100 2700 INPUT #1,A$,B$,C$,D$ 2710 FOR J=1 TO R 2720 INPUT #1,M(J,1),M(J,2),M(J,3),M(J,4) 2730 NEXT J 2740 IF EOF(1) THEN CLOSE #1 2750 GOTO 100 2760 INPUT #1,A$,B$,C$,D$,E$ 2770 FOR J=1 TO R 2780 INPUT #1,M(J,1),M(J,2),M(J,3),M(J,4),M(J,5) 2790 NEXT J 2800 IF EOF(1) THEN CLOSE #1 2810 GOTO 100 2820 INPUT #1,A$,B$,C$,D$,E$,F$ 2830 FOR J=1 TO R 2840 INPUT #1,M(J,1),M(J,2),M(J,3),M(J,4),M(J,5),M(J,6) 2850 NEXT J 2860 IF EOF(1) THEN CLOSE #1 2870 GOTO 100 2880 REM*************ROUTINE TO DO LINEAR REGRESSION******** 2890 Y1=0:Y2=0:X1=0:X2=0:Z=0:Z1=0:Z2=0:Z3=0:Z4=0:Z5=0:Z6=0:Z7=0:Z8=0:Z9=0:N=0 2900 C2=0:C3=0:D=0:CLS:RESTORE 2910 PRINT"THIS ROUTINE WILL LET YOU RUN A LINEAR REGRESSION ON ANY TWO COLUMNS OF DATA IN YOUR TABLE WITH OR WITHOUT A ROW DISPLACEMENT.":PRINT:PRINT 2920 INPUT"WHICH COLUMN IS THE INDEPENDENT VARIABLE(X)";C3 2930 INPUT"WHICH COLUMN IS THE DEPENDENT VARIABLE(Y)";C2 2940 INPUT"WHAT IS THE ROW DISPLACEMENT YOU WANT TO USE";D 2955 CLS:PRINT"------HOLD FOR MENTAL WORK----" 2960 FOR J=1 TO R 2980 Y=M(J,C2) 2981 K=J+D 2982 IF K>R THEN GOTO 3090 2990 X=M(K,C3) 3010 IF X=0 OR Y=0 THEN 3080 3020 Y1=Y1+Y 'SUM (Y) 3030 X1=X1+X 'SUM(X) 3040 Y2=Y2+Y*Y 'SUM (Y^2) 3050 X2=X2+X*X 'SUM (X^2) 3060 Z=Z+Y*X 'SUM (YX) 3070 N=N+1 'SUM N 3080 NEXT J 3090 Z1=Y1/N 'Y-BAR 3100 Z2=X1/N 'X-BAR 3110 Z3=Y2-Y1*Y1/N 'S(Y^2) 3120 Z4=X2-X1*X1/N 'S(X^2) 3130 Z5=Z-Y1*X1/N 'S(YX) 3140 Z6=Z5/Z4 'SLOPE 3150 Z7=Z1-Z6*Z2 'INTERCEPT 3160 Z8=Z3-Z6*Z5/(N-2) 'VARIANCE 3170 Z9=(Z5*Z5)/(Z4*Z3) 'CORRELATION(R^2) 3180 PRINT"LINEAR REGRESSION DATA ON COLUMNS ";C2;"AND ";C3;" WITH ";D;" DISPLACEMENT" 3190 PRINT"THE AVERAGE OF COLUMN ";C2;" IS=";Z1 3200 PRINT"THE AVERAGE OF COLUMN ";C3;" IS=";Z2 3210 PRINT"THE STANDARD DEVIATION OF COLUMN ";C2;" IS=";SQR(Z3/(N-1)) 3220 PRINT"THE STANDARD DEVIATION OF COLUMN ";C3;" IS=";SQR(Z4/(N-1)) 3230 PRINT"THE SLOPE OF THE REGRESSION IS=";Z6 3240 PRINT"THE INTERCEPT OF THE REGRESSION IS=";Z7 3250 PRINT"THE TOTAL VARIANCE IS=";Z8 3260 PRINT"THE CORRELATION (R^2)=";Z9 3270 PRINT"THE DEGREES OF FREEDOM ARE=";(N-1) 3280 PRINT"THE FOLLOWING EQUATION REPRESENTS THE DATA:" 3290 PRINT"Y=";Z7;"+";Z6;"*X" 3300 INPUT"DO YOU WANT TO PRINT A HARD COPY OF THIS DATA (Y/N)";W$ 3310 IF W$="Y" OR W$="y" THEN GOTO 3320 ELSE 100 3320 PRINT"TURN ON THE PRINTER------PRESS CONT(K5)" 3330 LPRINT"LINEAR REGRESSION DATA ON COLUMNS ";C2;" AND";C3;" WITH ";D;" DISPLACEMENT OF ROWS" 3340 LPRINT"THE AVERAGE OF COLUMN ";C2;" IS=";Z1 3350 LPRINT"THE AVERAGE OF COLUMN ";C3;" IS=";Z2 3360 LPRINT"THE STANDARD DEVIATION OF COLUMN ";C2;" IS=";SQR(Z3/(N-1)) 3370 LPRINT"THE STANDARD DEVIATION OF COLUMN ";C3;" IS=";SQR(Z4/(N-1)) 3380 LPRINT"THE SLOPE OF THE REGRESSION IS=";Z6 3390 LPRINT"THE INTERCEPT OF THE REGRESSION IS=";Z7 3400 LPRINT"THE TOTAL VARIANCE IS=";Z8 3410 LPRINT"THE CORRELATION(R^2) IS=";Z9 3420 LPRINT"THE DEGREES OF FREEDOM ARE=";N-1 3430 LPRINT"THE FOLLOWING EQUATION REPRESENTS THE DATA:" 3440 LPRINT"Y=";Z7;"+";Z6;"*X" 3450 GOTO 100 3530 REM*******THIS ROUTINE WILL PRINTOUT A COPY OF THE STUDENTS-t TABLE 3535 PRINT"TURN ON YOUR PRINTER THEN TYPE CONT AND ENTER WHEN READY.":STOP 3536 CLS 3540 RESET 3550 FOR J= 1 TO 30 3560 FOR K=1 TO 4 3570 READ X 3580 G(J,K)=X 3590 NEXT K 3600 NEXT J 3610 LPRINT TAB(30);"STUDENTS-T TABLE" 3620 LPRINT 3630 LPRINT TAB(5);"DF";TAB(25);"90%";TAB(45);"95%";TAB(65);"99%" 3640 LPRINT 3650 FOR J= 1 TO 30 3660 LPRINT TAB(5);G(J,1);TAB(25);G(J,2);TAB(45);G(J,3);TAB(65);G(J,4) 3670 NEXT J 3680 FOR X=1 TO 10000:NEXT X:GOTO 100 3690 GOTO 100 3700 DATA 1,6.314,12.706,63.657,2,2.920,4.303,9.925,3,2.353,3.182,5.841,4,2.132 3710 DATA 2.776,4.604,5,2.015,2.571,4.032,6,1.943,2.447,3.707,7,1.895,2.365 3720 DATA 3.499,8,1.860,2.306,3.355,9,1.833,2.262,3.250,10,1.812,2.228,3.169 3730 DATA 11,1.796,2.201,3.106,12,1.782,2.179,3.055,13,1.771,2.16,3.012,14,1.761 3740 DATA 2.145,2.977,15,1.753,2.131,2.947,16,1.746,2.120,2.921,17,1.740,2.110,2.898 3750 DATA 18,1.734,2.101,2.878,19,1.729,2.093,2.861,20,1.725,2.086,2.845,21,1.721 3760 DATA 2.080,2.831,22,1.717,2.074,2.819,23,1.714,2.069,2.807,24,1.711,2.064,2.797 3770 DATA 25,1.708,2.060,2.787,26,1.706,2.056,2.779,27,1.703,2.056,2.771 3780 DATA 28,1.701,2.048,2.763,29,1.699,2.045,2.756,30,1.697,2.042,2.750 3790 REM******ROUTINE TO RUN STATISTICS ON PAIRED DATA******* 3800 W1=0:W2=0:W3=0:W4=0:W5=0:W6=0:W7=0:N=0 3810 RESTORE:CLS 3820 INPUT "WHICH TWO COLUMNS DO YOU WANT PAIRED STATS ON?(ENTER BOTH)",C1,C2 3830 FOR J=1 TO R 3840 X=M(J,C1) 3850 Y=M(J,C2) 3860 IF X=0 OR Y=0 THEN GOTO 3950 3870 W1=ABS(X-Y) 'DELTA 3880 W2=W2+W1 'SUM DELTA 3890 W3=W3+W1*W1 'SUM DELTA SQ 3900 W4=W4+X 'SUM X 3910 W5=W5+Y 'SUM Y 3920 W6=W6+X*X 'SUM X SQ 3930 W7=W7+Y*Y 'SUM Y SQ 3940 N=N+1 'SUM NUMBER OF ITEMS 3950 NEXT J 3960 W=W3-W2*W2/N 3970 S=(W2/N)/SQR(W/(N*N-N)) 3980 S1=SQR((W6-W4*W4/N)/(N-1)) 3990 S2=SQR((W7-W5*W5/N)/(N-1)) 4000 S3=W4/N 4010 S4=W5/N 4020 INPUT"HOW MANY DECIMAL PLACES DO YOU WANT PRINTED";D 4030 PRINT"THE DEGREES OF FREEDOM FOR THE TWO PAIRED COLUMNS IS=";N-1 4040 PRINT "THE STANDARD DEVIATION OF COLUMN ";C1;" IS ";INT(S1*10^D+0.5)/10^D 4050 PRINT"THE STANDARD DEVIATION OF COLUMN ";C2;" IS=";INT(S2*10^D+0.5)/10^D 4060 PRINT"THE AVERAGE OF COLUMN ";C1;" IS=";INT(S3*10^D+0.5)/10^D 4070 PRINT"THE AVERAGE OF COLUMN ";C2;" IS=";INT(S4*10^D+0.5)/10^D 4080 PRINT"STUDENTS-t FOR THE PAIRED COLUMNS IS=";INT(S*10^3+0.5)/10^3 4090 FOR J=1 TO 30 4100 FOR K=1 TO 4 4110 READ X 4120 G(J,K)=X 4130 NEXT K 4140 NEXT J 4150 X1=G(N-1,2) 4160 X2=G(N-1,3) 4170 X3=G(N-1,4) 4180 IF S<X1 THEN 4230 4190 IF S<X2 THEN 4250 4200 IF S<X3 THEN 4260 4210 PRINT"THE DATA SHOW 99%CONFIDENCE THAT COLUMN ";C1;"AND";C2;"ARE STATISTICALLY DIFFERENT" 4220 GOTO 4270 4230 PRINT"THE DATA SHOW 90%CONFIDENCE THAT COLUMN ";C1;"AND";C2;"ARE NOT STATISTICALLY DIFFERENT" 4240 GOTO 4270 4250 PRINT"THE DATA SHOW 90%CONFIDENCE THAT COLUMN ";C1;" AND";C2;"ARE STATISTICALLY DIFFERENT" 4260 PRINT"THE DATA SHOW 95%CONFIDENCE THAT COLUMN "C1;" AND";C2;" ARE STATISTICALLY DIFFERENT" 4270 INPUT"DO YOU WANT A HARD COPY OF THE ABOVE DATA?(Y/N)";Y$ 4280 IF Y$="Y" OR Y$="y" THEN GOSUB 4320 4290 Y$="" 4300 INPUT"DO YOU WANT TO REPEAT STATS ON DIFFERENT COLUMNS?(Y/N)";Y$ 4310 IF Y$="Y" OR Y$="y" THEN 3790 ELSE 100 4320 REM*****PRINT STATS**** 4330 LPRINT"THE STATISTICS OF PAIRED DATA USING COLUMNS ";C1;" AND ";C2;"ARE:" 4340 LPRINT"THE DEGREES OF FREEDOM ARE=";(N-1) 4350 LPRINT"THE STANDARD DEVIATION OF COLUMN ";C1;" IS=";INT(S1*10^D+0.5)/10^D 4360 LPRINT"THE STANDARD DEVIATION OF COLUMN ";C2;" IS=";INT(S2*10^D+0.5)/10^D 4370 LPRINT"THE AVERAGE OF COLUMN ";C1;" IS=";INT(S3*10^D+0.5)/10^D 4380 LPRINT"THE AVERAGE OF COLUMN ";C2;" IS=";INT(S4*10^D+0.5)/10^D 4390 LPRINT"THE STUDENTS-t FOR THE PAIRED DATA IS=";INT(S*10^D+0.5)/10^D 4400 IF S<X1 THEN 4450 4410 IF S<X2 THEN 4470 4420 IF S<X3 THEN 4490 4430 LPRINT"THE DATA SHOW 99% CONFIDENCE THAT COLUMN ";C1;" AND ";C2;" ARE STATISTICALLY DIFFERENT." 4440 RETURN 4450 LPRINT"THE DATA SHOW 90% CONFIDENCE THAT COLUMN ";C1;" AND ";C2;"ARE NOT STATISTICALLY DIFFERENT" 4460 RET 4470 LPRINT"THE DATA SHOW 90% CONFIDENCE THAT COLUMN ";C1;" AND ";C2;" ARE STATISTICALLY DIFFERENT" 4480 RET 4490 LPRINT"THE DATA SHOW 95% CONFIDENCE THAT COLUMN ";C1;" AND ";C2;" ARE STATISTICALLY DIFFERENT" 4500 RET 4510 REM***ROUTINE TO FIX THE DECIMAL PLACES********** 4512 PRINT:PRINT 4520 INPUT"HOW MANY DECIMAL PLACES DO YOU DESIRE IN THE PRINTOUT?",D 4530 INPUT"HOW MANY ROWS AND COLUMNS ARE IN THE TABLE?";R,C 4540 FOR J=1 TO R 4550 FOR K=1 TO C 4560 X=M(J,K) 4570 Y=(INT(X*10^D+0.5))/10^D 4575 M(J,K)=Y 4580 NEXT K 4590 NEXT J 4600 GOTO 100 4610 REM*****MULTIPLE REGRESSION****** 4620 Z=0:Z1=0:Z2=0:Z3=0:Z4=0:Z5=0:Z6=0:Z7=0:Z8=0:Z9=0:Z10=0:Z11=0:Z12=0:Z13=0:N=0:C9=0:C1=0:C2=0:C3=0 4630 Y$="":CLS 4640 PRINT"THIS ROUTINE WILL DO MULTIPLE REGRESSION ON DATA ALREADY IN" 4642 PRINT"MEMORY IN MATRIX FORM FROM A NEW ENTRY OR FROM DISK RECALL" 4643 PRINT:PRINT 4650 INPUT"DO YOU WANT TO ELIMINATE ROWS CONTAINING NULL DATA?(Y/N)";Y$ 4660 INPUT"HOW MANY TOTAL COLUMNS ARE TO BE USED?";C9 4670 INPUT"WHICH COLUMN IS TO BE THE 'Y' VARIABLE?";C1 4680 INPUT"WHICH COLUMN IS TO BE THE FIRST INDEPENDENT VARIABLE?";C2 4690 INPUT"WHICH COLUMN IS TO BE THE SECOND INDEPENDENT VARIABLE?";C3 4700 IF C9=3 THEN 4720 4710 INPUT"WHICH COLUMN IS TO BE THE THIRD INDEPENDENT VARIABLE?";C4 4720 CLS:PRINT"---------WAIT FOR CALCULATIONS----------" 4730 FOR J=1 TO R 4740 Y=M(J,C1) 4750 X1=M(J,C2) 4760 X2=M(J,C3) 4770 IF C9=3 THEN 4790 4780 X3=M(J,C4) 4790 IF Y$="N" OR Y$="n" THEN 4840 4800 IF C9=4 THEN 4830 4810 IF Y=0 OR X1=0 OR X2=0 THEN 5000 4820 IF C9=3 THEN 4840 4830 IF Y=0 OR X1=0 OR X2=0 OR X3=0 THEN 5000 4840 Z=Z+Y 4850 Z1=Z1+X1 4860 Z2=Z2+X2 4870 Z3=Z3+Y*Y 4880 Z4=Z4+X1*X1 4890 Z5=Z5+X2*X2 4900 Z6=Z6+X1*Y 4910 Z7=Z7+Y*X2 4920 Z8=Z8+X1*X2 4930 IF C9=3 THEN 4990 4940 Z9=Z9+Y*X3 4950 Z10=Z10+X1*X3 4960 Z11=Z11+X2*X3 4970 Z12=Z12+X3*X3 4980 Z13=Z13+X3 4990 N=N+1 5000 NEXT J 5010 S1=Z3-Z*Z/N 'S(Y^2) 5020 S2=Z4-Z1*Z1/N 'S(X1^2) 5030 S3=Z5-Z2*Z2/N 'S(X2^2) 5040 S4=Z6-Z*Z1/N 'S(YX1) 5050 S5=Z7-Z*Z2/N 'S(YX2) 5060 S6=Z8-Z1*Z2/N 'S(X1X2) 5070 IF C9=3 THEN 5120 5080 S7=Z9-Z*Z13/N 'S(YX3) 5090 S8=Z10-Z1*Z13/N 'S(X1X3) 5100 S9=Z11-Z2*Z13/N 'S(X2X3) 5110 S10=Z12-Z13*Z13/N 'S(X3^2) 5120 YAVE=Z/N 'AVE Y 5130 X1AVE=Z1/N 'AVE X1 5140 X2AVE=Z2/N 'AVE X2 5150 X3AVE=Z13/N 5160 IF C9=4 GOTO 5310 5170 INV=S2*S3-S6*S6 'MATRIX INVERSE FOR C=3 5180 SLOPE1=(S4*S3-S5*S6)/INV 5190 SLOPE2=(S5*S2-S4*S6)/INV 5200 INTERCEPT=YAVE-SLOPE1*X1AVE-SLOPE2*X2AVE 5210 VARY=(S1-SLOPE1*S4-SLOPE2*S5)/(N-3) 5220 SDEVY=SQR(VARY) 5230 SDEVB1=SDEVY*SQR(S3/INV) 5240 SDEVB2=SDEVY*SQR(S2/INV) 5250 SORRB1=SLOPE1*S4/S1 5260 SORRB2=SLOPE2*S5/S1 'R^2OF X2 5270 SORRY=ABS(SORRB1)+ABS(SORRB2) 5280 STB1=SLOPE1*SQR(S2/VARY) 5290 STB2=SLOPE2*SQR(S3/VARY) 5300 IF C9=3 THEN 5570 5310 INV=S2*S3*S10-S2*S9*S9-S6*S6*S10+2*S6*S8*S9-S8*S8*S3 'INVERSE FOR C=4 5320 P11=(S3*S10-S9*S9)/INV 5330 P12=(S8*S9-S6*S10)/INV 5340 P13=(S6*S9-S8*S3)/INV 5350 P22=(S2*S10-S8*S8)/INV 5360 P23=(S6*S8-S2*S9)/INV 5370 P33=(S2*S3-S6*S6)/INV 5380 SLOPE1=S4*P11+S5*P12+S7*P13 5390 SLOPE2=S4*P12+S5*P22+S7*P23 5400 SLOPE3=S4*P13+S5*P23+S7*P33 5410 INTERCEPT=YAVE-SLOPE1*X1AVE-SLOPE2*X2AVE-SLOPE3*X3AVE 5420 VARY=(S1-SLOPE1*S4-SLOPE2*S5-SLOPE3*S7)/(N-4) 5430 VARB1=VARY*P11 5440 VARB2=VARY*P22 5450 VARB3=VARY*P33 5460 SDEVY=SQR(VARY) 5470 SDEVB1=SQR(VARB1) 5480 SDEVB2=SQR(VARB2) 5490 SDEVB3=SQR(VARB3) 5500 STB1=SLOPE1/SDEVB1 5510 STB2=SLOPE2/SDEVB2 5520 STB3=SLOPE3/SDEVB3 5530 SORRB1=S4*S4/(S1*S2) 5540 SORRB2=S5*S5/(S1*S3) 5550 SORRB3=S7*S7/(S1*S10) 5560 SORRY=ABS(SORRB1)+ABS(SORRB2)+ABS(SORRB3) 5570 IF C9=3 THEN PRINT"Y=COLUMN ";C1;",X1=COLUMN ";C2;",X3= COLUMN ";C3 5580 IF C9=4 THEN PRINT"Y=COLUMN ";C1;",X1=COLUMN ";C2;" ,X2=COLUMN ";C3;",X3=COLUMN ";C4 5590 PRINT"AVERAGE Y VALUE=";YAVE 5600 PRINT"AVERAGE X1 VALUE=";X1AVE 5610 PRINT"AVERAGE X2 VALUE=";X2AVE 5620 IF C9=4 THEN PRINT"AVERAGE X3 VALUE=";X3AVE 5630 PRINT"SLOPE B1=";SLOPE1 5640 PRINT "SLOPE B2=";SLOPE2 5650 IF C9=4 THEN PRINT"SLOPE B3=";SLOPE3 5660 PRINT"VARIANCE OF (Y)=";VARY 5670 PRINT"STANDARD DEVIATION OF Y=";SDEVY 5680 PRINT"STANDARD DEVIATION OF B1=";SDEVB1 5690 PRINT"STANDARD DEVIATION OF B2=";SDEVB2 5700 IF C9=4 THEN PRINT"STANDARD DEVIATION OF B3=";SDEVB3 5710 PRINT"CORRELATION(R^2) OF X1=";SORRB1 5720 PRINT"CORRELATION(R^2) OF X2=";SORRB2 5730 IF C9=4 THEN PRINT"CORRELATION(R^2) OF X3=";SORRB3 5740 PRINT "TOTAL CORRELATION (R^2) OF Y=";SORRY 5750 PRINT"STUDENTS-t OF B1=";STB1 5760 PRINT"STUDENTS-t OF B2=";STB2 5770 IF C9=4 THEN PRINT"STUDENTS-t OF B3="STB3 5780 IF C9=3 THEN PRINT"DEGREES OF FREEDOM ARE=";N-3 5790 IF C9=4 THEN PRINT"DEGREES OF FREEDOM ARE=";N-4 5800 PRINT"THE FOLLOWING EQUATION REPRESENTS THE DATA:" 5810 IF C9=3 THEN PRINT"Y=";INTERCEPT;"+";SLOPE1;"*X1+";SLOPE2;"*X2" 5820 IF C9=4 THEN PRINT"Y=";INTERCEPT;"+";SLOPE1;"*X1+";SLOPE2;"*X2+";SLOPE3;"*X3" 5830 INPUT"DO YOU WANT A HARD COPY OF THE RESULTS(Y/N)?";Y$ 5840 IF Y$="N" OR Y$="n" THEN 100 5850 PRINT"TURN ON THE PRINTER AND PRESS KEY F5":STOP 5860 IF C9=3 THEN LPRINT"Y=COLUMN ";C1;", X1=COLUMN ";C2;",X2=COLUMN ";C3 5870 IF C9=4 THEN LPRINT"Y=COLUMN ";C1;", X1=COLUMN ";C2;", X2=COLUMN ";C3;", X3=COLUMN ";C4 5880 LPRINT "AVERAGE Y VALUE =";YAVE 5890 LPRINT"AVERAGE X1 VALUE=";X1AVE 5900 LPRINT"AVERAGE X2 VALUE=";X2AVE 5910 IF C9=4 THEN LPRINT"AVERAGE X3 VALUE=";X3AVE 5920 LPRINT"SLOPE B1=";SLOPE1 5930 LPRINT"SLOPE B2=";SLOPE2 5940 IF C9=4 THEN LPRINT"SLOPE B3=";SLOPE3 5950 LPRINT"VARIANCE OF Y=";VARY 5960 LPRINT"VARIANCE OF B1=";VARB1 5970 LPRINT"VAARIANCE OF B2=";VARB2 5980 IF C9=4 THEN LPRINT"VARIANCE OF B3=";VARB3 5990 LPRINT"STANDARD DEVIATION OF Y=";SDEVY 6000 LPRINT"STANDARD DEVIATION OF B1=";SDEVB1 6010 LPRINT"STANDARD DEVIATION OF B2=";SDEVB2 6020 IF C9=4 THEN LPRINT"STANDARD DEVIATION OF B3=";SDEVB3 6030 LPRINT"CORRELATION(R^2) OF X1=";SORRB1 6040 LPRINT"CORRELATION(R^2) OF X2=";SORRB2 6050 IF C9=4 THEN LPRINT"CORRELATION(R^2) OF X3=";SORRB3 6060 LPRINT"TOTAL CORRELATION(R^2) OF Y=";SORRY 6070 LPRINT"STUDENTS-t OF B1=";STB1 6080 LPRINT"STUDENTS-t OF B2=";STB2 6090 IF C9=4 THEN LPRINT"STUDENTS-t OF B3=";STB3 6100 IF C9=3 THEN LPRINT"DEGREES OF FREEDOM ARE=";N-3 6110 IF C9=4 THEN LPRINT"DEGREES OF FREEDOM ARE=";N-4 6120 LPRINT"THE FOLLOWING EQUATION REPRESENTS THE DATA:" 6130 IF C9=3 THEN LPRINT"Y=";INTERCEPT;"+";SLOPE1;"*X1+";SLOPE2;"*X2" 6140 IF C9=4 THEN LPRINT"Y=";INTERCEPT;"+";SLOPE1;"*X1+";SLOPE2;"*X2+";SLOPE3;"*X3" 6150 GOTO 100